﻿//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
// 프로그램 명		: frmStandardCodeManagement.cs
// 프로그램 기능    : BOM Standard Code 관리
// 클래스 기능		: 
//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
// 개발자			: 김승현, 조범준
// 개발일			: 2014-06-28
//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
// F/W 버전		    : Dot NET Compack Framework 4.0 Service Pack 1 Patch
// 라이센스			: Copyright ⓒ 2014-2014 All rights reserved.
//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
// 명명규칙			: 클래스(class) 명				- "c" + 클래스명
//					  전역(private) 상수			- "MC_" + 상수명
//					  공용(public)  상수			- "PC_" + 상수명
//					  전역(private) 변수/객체/핸들/구조체/컬렉션/델리게이트
//													- "mv_" + 타입/obj_/hwnd_/stru_/coll_/del_ + 명
//					  공용(public)  변수/객체/핸들/구조체/컬렉션/델리게이트/이벤트
//													- "pv_" + 타입/obj_/hwnd_/stru_/coll_/del_/evnt_ + 명
//					  공용(public)  속성(Property)	- "pp_" + 타입 + 속성명
//					  전역(private) 함수/API		- "mf_" + 함수명/API 함수명
//					  공용(public)  함수/API		- "pf_" + 함수명/API 함수명
//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
// 개발자는 개발/수정시 위의 내용을 반드시 작성하며 내용이 일치하지 않을때에는 모든 사항을 개발자가 책임 진다.
//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
namespace TimsXBX
{
	///▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
	/// <summary>frmStandardCodeManagement 클래스</summary>
	///▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
	public partial class frmStandardCodeManagement : Form
	{
		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [생성자/소멸자]
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>생성자</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		public frmStandardCodeManagement(frmMain fMain, string sJobName)
		{
			InitializeComponent();

			this.mv_frmMain = fMain;
			this.mv_sJobName = sJobName;
		}
		public frmStandardCodeManagement(frmMain fMain)
		{
			InitializeComponent();

			this.mv_frmMain = fMain;
		}
		public frmStandardCodeManagement()
		{
			InitializeComponent();
			mf_Init(this);
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>소멸자</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		~frmStandardCodeManagement()
		{
			mf_UnInit(this);
		}
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [전역(private) 상수 - 클래스 내부만 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 상수명 첫 문자는 "MC_" 로 시작
		//         - 전체를 영문 대문자로 하고 상수명이 긴 경우 '_'로 구분해서 명명
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		///<summary>전역(private) 상수 선언 예</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private const string MC_HELLO = "Hello...";
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [공용(public) 상수 - 클래스 외부로 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 상수명 첫 문자는 "PC_" 로 시작
		//         - 전체를 영문 대문자로 하고 상수명이 긴 경우 '_'로 구분해서 명명
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		///<summary>공용(public) 상수 선언 예</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		public const string PC_HELLO = "Hello...";
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [전역(private) 변수/객체/핸들/구조체/컬렉션/델리게이트 - 클래스 내부만 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 첫 문자를 "mv_타입"/"mv_obj"/"mv_hwnd"/"mv_struc"/"mv_coll"/"mv_del" 로 시작
		//         - 영문 대소문자로 시작하고 변수명이 긴 경우 대소문자 구분해서 명명('_' 사용가능!)
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>전역(private) 변수 선언 예</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private string mv_sHello = null;
		//---------------------------------------------------------------------------------------------------
		//메인 폼 객체 핸들
		//---------------------------------------------------------------------------------------------------
		private frmMain mv_frmMain = null;										//메인 폼 인스턴스 핸들
		private ComCls.cFunction mv_oFunc = null;								//공용함수 인스턴스 핸들
		private string mv_sJobName = null;										//해당 작업명
		private int mv_nJobCode = 0;											//해당 작업 코드 (Standard Group Code 테이블 Objectid)
		//---------------------------------------------------------------------------------------------------
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [공용(public) 변수/객체/핸들/구조체/컬렉션/델리게이트/이벤트 - 클래스 외부로 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 첫 문자를 "pv_타입"/"pv_obj"/"pv_hwnd"/"pv_struc"/"pv_coll"/"pv_del"/"pv_event" 로 시작
		//         - 영문 대소문자로 시작하고 변수명이 긴 경우 대소문자 구분해서 명명('_' 사용가능!)
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>공용(public) 변수 선언 예</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		public string pv_sHello = null;
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [공용(public) 속성(Property:읽기 쓰기 선택적 가능) - 클래스 외부로 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 첫 문자를 "pp_타입" 로 시작
		//         - 영문 대소문자로 시작하고 속성명이 긴 경우 대소문자 구분해서 명명('_' 사용가능!)
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>공용(public) 속성(Property) 선언 예</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		public string pp_bHello
		{
			get { return mv_sHello; }
			set { mv_sHello = value; }
		}
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [전역(private) 함수/API - 클래스 내부만 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 첫 문자를 "mf_" + 함수명 또는 API 함수명 으로 시작
		//         - 영문 대소문자로 시작하고 함수명이 긴 경우 대소문자 구분해서 명명('_' 사용가능!)
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>전역(private) 함수 선언 예</summary>
		/// <param name="sStr">전역(private) 함수 인자 선언 예</param>
		/// <returns>string</returns>
		///-------------------------------------------------------------------------------------------------------------------------
		private string mf_Hello(string sStr)
		{
			try
			{
				sStr = "Hello...";
			}
			catch (Exception ex)
			{
				throw ex;
			}

			return sStr;
		}

		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>클래스 초기화</summary>
		/// <param name="objClass">클래스 객체 인스턴스</param>
		/// <returns>void</returns>
		///-------------------------------------------------------------------------------------------------------------------------
		private void mf_Init(frmStandardCodeManagement objClass)
		{
			try
			{
				//클래스 초기화
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>클래스 마무리</summary>
		/// <param name="objClass">클래스 객체 인스턴스</param>
		/// <returns>void</returns>
		///-------------------------------------------------------------------------------------------------------------------------
		private void mf_UnInit(frmStandardCodeManagement objClass)
		{
			try
			{
				//클래스 마무리
			}
			catch (Exception ex)
			{
				throw ex;
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>Group 별 DB내 저장된 키값(ObjectId) 일기</summary>
		/// <returns>int</returns>
		///-------------------------------------------------------------------------------------------------------------------------
		private int mf_GetJobCode()
		{
			//---------------------------------------------------------------------------------------------------
			//Web Sql 정보 관련
			//---------------------------------------------------------------------------------------------------
			string sWebSql = null;
			string sWebArg = null;
			//---------------------------------------------------------------------------------------------------
			//Web Sql 실행 관련
			//---------------------------------------------------------------------------------------------------
			string sDataSet = null;
			DataSet oDataSet = null;
			int nRowCount = 0;
			int nColCount = 0;
			string sErrorMsg = null;
			//---------------------------------------------------------------------------------------------------
			//데이터셋 반환 타입이 PARSE인 경우 사용
			//---------------------------------------------------------------------------------------------------
			string[] saDataSetRows = null;
			string[] saRowSepa = new string[] { ComCls.cConst.PC_SEPARATOR_ROW };

			//반환 할 Group Code 값
			int nJobCode = 0;

			try
			{
				//---------------------------------------------------------------------------------------------------
				//Web Sql 경로 만들기
				//---------------------------------------------------------------------------------------------------
				sWebSql = ComCls.cConst.PC_WEBSQL_WEBPARSE_URL;
				sWebArg = string.Format("?{0}={1}&{2}={3}&{4}={5}&{6}={7}&{8}={9}",
											ComCls.cConst.PC_WEBSQL_MODE, ComCls.cConst.PC_WEBSQL_MODE_R,
											ComCls.cConst.PC_WEBSQL_TYPE, ComCls.cConst.PC_WEBSQL_TYPE_PARSE,
											ComCls.cConst.PC_WEBSQL_STYLE, ComCls.cConst.PC_WEBSQL_STYLE_SP,
											ComCls.cConst.PC_WEBSQL_CMD_SP, "SP_GET_JOBCODE_R",
											"iNAME", this.mv_sJobName);
				sWebSql += sWebArg;
				//---------------------------------------------------------------------------------------------------
				//Web Sql 실행
				//---------------------------------------------------------------------------------------------------
				if (this.mv_oFunc.pf_WpExecSql(ComCls.cConst.PE_WEBSQL_TYPE.PARSE, sWebSql, ref sDataSet, ref oDataSet, ref nRowCount, ref nColCount, ref sErrorMsg) == true)
				{
					if (sDataSet != null && sDataSet != "")
					{
						//데이터 셋 행 분리
						saDataSetRows = sDataSet.Split(saRowSepa, StringSplitOptions.None);

						if (saDataSetRows != null && saDataSetRows.Length > 0)
						{
							//Parsing 한 데이터 콤보에 추가
							//for (int nRow = 0; nRow < saDataSetRows.Length; nRow++)
							if (saDataSetRows.Length == 1)
							{
								nJobCode = Convert.ToInt32(saDataSetRows[0]);
								//Application.DoEvents();
							}
						}
					}
				}
			}
			catch (Exception ex)
			{
				throw ex;
			}
			finally
			{
				//---------------------------------------------------------------------------------------------------
				//Debug Agent 인스턴스 있는 경우
				//---------------------------------------------------------------------------------------------------
				if (this.mv_frmMain.pv_frmDebugAgent != null)
				{
					this.mv_frmMain.pv_frmDebugAgent.pf_OutputDebugInfo(ComCls.cConst.PE_WEBSQL_TYPE.PARSE, sWebSql, sDataSet, oDataSet);
				}
				//---------------------------------------------------------------------------------------------------
			}

			return nJobCode;
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>Standard Code GridView에 출력</summary>
		/// <returns>void</returns>
		///-------------------------------------------------------------------------------------------------------------------------
		private void mf_ReadStandardCodeGridView()
		{
			//---------------------------------------------------------------------------------------------------
			//Web Sql 정보 관련
			//---------------------------------------------------------------------------------------------------
			string sWebSql = null;			//Web Url
			string sWebArg = null;			//Web Url 인자
			int nChkState = 0;
			//---------------------------------------------------------------------------------------------------
			//Web Sql 실행 관련
			//---------------------------------------------------------------------------------------------------
			string sDataSet = null;
			DataSet oDataSet = null;
			int nRowCount = 0;
			int nColCount = 0;
			string sErrorMsg = null;
			////---------------------------------------------------------------------------------------------------

			if (this.chkContainNonAvailable.Checked == true)
				nChkState = 1;

			try
			{
				//---------------------------------------------------------------------------------------------------
				//Web Sql 경로 만들기
				//---------------------------------------------------------------------------------------------------
				sWebSql = ComCls.cConst.PC_WEBSQL_WEBPARSE_URL;
				sWebArg = string.Format("?{0}={1}&{2}={3}&{4}={5}&{6}={7}&{8}={9}&{10}={11}",
											ComCls.cConst.PC_WEBSQL_MODE, ComCls.cConst.PC_WEBSQL_MODE_R,
											ComCls.cConst.PC_WEBSQL_TYPE, ComCls.cConst.PC_WEBSQL_TYPE_PARSE,
											ComCls.cConst.PC_WEBSQL_STYLE, ComCls.cConst.PC_WEBSQL_STYLE_SP,
											ComCls.cConst.PC_WEBSQL_CMD_SP, "SP_STANDARDCODE_R",
											"iGROUPNAME", this.mv_sJobName,
											"iSTATE", nChkState);
				sWebSql += sWebArg;
				//---------------------------------------------------------------------------------------------------
				//Web Sql 실행
				//---------------------------------------------------------------------------------------------------
				if (this.mv_oFunc.pf_WpExecSql(ComCls.cConst.PE_WEBSQL_TYPE.PARSE, sWebSql, ref sDataSet, ref oDataSet, ref nRowCount, ref nColCount, ref sErrorMsg) == true)
				{
					this.mv_oFunc.pf_WpOutputDataSetToDataGridView(ComCls.cConst.PE_WEBSQL_TYPE.PARSE, this.dgvCodeList, sDataSet, oDataSet, true);
				}
				else
				{
					if (sErrorMsg != null)
					{
						ComCls.cException.ExceptionMessage(this, sErrorMsg, "mf_ReadStandardCodeGridView()");
					}
				}
			}
			catch (Exception ex)
			{
				throw ex;
			}
			finally
			{
				//---------------------------------------------------------------------------------------------------
				//Debug Agent 인스턴스 있는 경우
				//---------------------------------------------------------------------------------------------------
				if (this.mv_frmMain.pv_frmDebugAgent != null)
				{
					this.mv_frmMain.pv_frmDebugAgent.pf_OutputDebugInfo(ComCls.cConst.PE_WEBSQL_TYPE.PARSE, sWebSql, sDataSet, oDataSet);
				}
				//---------------------------------------------------------------------------------------------------
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>Standard Group Code 목록을 저장/수정/삭제</summary>
		/// <param name="sSPName">스토어드명</param>
		/// <param name="sJobMode">작업모드</param>
		/// <param name="nObjectId">오브젝트아이디</param>
		/// <param name="nPAR_ObjectId">부모오브젝트아이디</param>
		/// <param name="nGRP_ObjectId">Group Code ObjectId</param>
		/// <param name="sCode">Code 명</param>
		/// <param name="sPattern">Pattern 명</param>
		/// <param name="sKorName">한글 Code Name</param>
		/// <param name="sCharacteristic">특성</param>
		/// <param name="nSeq">시퀀스</param>
		/// <param name="nCodeDefault">Default Code</param>
		/// <param name="nState">상태 0 - Enable / 1 - Disable</param>
		/// <returns>bool</returns>
		///-------------------------------------------------------------------------------------------------------------------------
		public bool mf_CUDStandardCodeData(string sSPName, string sJobMode, int nObjectId, int nPAR_ObjectId, int nGRP_ObjectId, string sCode, string sPattern,
											string sKorName, string sCharacteristic, int nSeq, int nCodeDefault, int nState)
		{
			//---------------------------------------------------------------------------------------------------
			//Web Sql 정보 관련
			//---------------------------------------------------------------------------------------------------
			string sWebSql = null;
			string sWebArg = null;
			//---------------------------------------------------------------------------------------------------
			//Web Sql 실행 관련
			//---------------------------------------------------------------------------------------------------
			string sDataSet = null;
			DataSet oDataSet = null;
			int nRowCount = 0;
			int nColCount = 0;
			string sErrorMsg = null;
			bool nResultOK = false;

			try
			{
				//---------------------------------------------------------------------------------------------------
				//Web Sql 경로 만들기
				//---------------------------------------------------------------------------------------------------
				sWebSql = ComCls.cConst.PC_WEBSQL_WEBPARSE_URL;
				sWebArg = string.Format("?{0}={1}&{2}={3}&{4}={5}&{6}={7}&{8}={9}&{10}={11}&{12}={13}&{14}={15}&{16}={17}&{18}={19}&{20}={21}&{22}={23}&{24}={25}&{26}={27}&{28}={29}",
										ComCls.cConst.PC_WEBSQL_MODE, ComCls.cConst.PC_WEBSQL_MODE_CUD,
										ComCls.cConst.PC_WEBSQL_TYPE, ComCls.cConst.PC_WEBSQL_TYPE_PARSE,
										ComCls.cConst.PC_WEBSQL_STYLE, ComCls.cConst.PC_WEBSQL_STYLE_SP,
										ComCls.cConst.PC_WEBSQL_CMD_SP, sSPName,
										"iJOBMODE", sJobMode,
										"iOBJECTID", nObjectId,
										"iPAR_OBJECTID", nPAR_ObjectId,
										"iGRP_OBJECTID", nGRP_ObjectId,
										"iCODE", (sCode == null) ? "" : sCode,
										"iPATTERN", (sPattern == null) ? "" : sPattern,
										"iKOR_NAME", (sKorName == null) ? "" : sKorName,
										"iCHARACTERISTIC", (sCharacteristic == null) ? "" : sCharacteristic,
										"iSEQ", nSeq,
										"iCODE_DEFAULT", nCodeDefault,
										"iSTATE", nState);
				sWebSql += sWebArg;
				//---------------------------------------------------------------------------------------------------
				//Web Sql 실행
				//---------------------------------------------------------------------------------------------------
				if (this.mv_oFunc.pf_WpExecSql(ComCls.cConst.PE_WEBSQL_TYPE.PARSE, sWebSql, ref sDataSet, ref oDataSet, ref nRowCount, ref nColCount, ref sErrorMsg) == true)
				{
					nResultOK = true;
				}
				else
				{
					if (sErrorMsg != null)
					{
						ComCls.cException.ExceptionMessage(this, sErrorMsg, "mf_CUDStandardCodeData()");
					}
				}
			}
			catch (Exception ex)
			{
				throw ex;
			}

			return nResultOK;
		}
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [공용(public) 함수(Method)/API - 클래스 외부로 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 첫 문자를 "pf_" + 함수명 또는 API 함수명 으로 시작
		//         - 영문 대소문자로 시작하고 함수명이 긴 경우 대소문자 구분해서 명명('_' 사용가능!)
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>공용(public) 함수(Method) 선언 예</summary>
		/// <param name="sStr">공용(public) 함수(Method) 인자 선언 예</param>
		/// <returns>string</returns>
		///-------------------------------------------------------------------------------------------------------------------------
		public string pf_Hello(string sStr)
		{
			try
			{
				sStr = "Hello...";
			}
			catch (Exception ex)
			{
				throw ex;
			}

			return sStr;
		}
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
		#region [전역(private) 시스템 이벤트함수 - 클래스 내부만 노출]
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		//명명규칙 - 없음!
		//▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>폼 로드 될 때 발생</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void frmStandardCodeManagement_Load(object sender, EventArgs e)
		{
			try
			{
				//---------------------------------------------------------------------------------------------------
				//공용함수 인스턴스 생성
				//---------------------------------------------------------------------------------------------------
				this.mv_oFunc = new ComCls.cFunction(this);
				//---------------------------------------------------------------------------------------------------
				this.mv_nJobCode = mf_GetJobCode();
				//---------------------------------------------------------------------------------------------------
				//Form Title 지정 (Form Title은 프로그램 실행/종료 시 인스턴스 확인용으로 사용됨)
				//---------------------------------------------------------------------------------------------------
				this.Text = this.mv_sJobName;
				//---------------------------------------------------------------------------------------------------
				//Code Data GridView에 출력
				//---------------------------------------------------------------------------------------------------
				this.mf_ReadStandardCodeGridView();
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>폼 언로드 될 때 발생</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void frmStandardCodeManagement_FormClosing(object sender, FormClosingEventArgs e)
		{
			try
			{
				this.mv_oFunc.pf_CheckBomExitMsg(this.mv_frmMain.pv_bChildFormExitMsgDispOK, this.Text, ref e);
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>폼 언로드 되고 발생</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void frmStandardCodeManagement_FormClosed(object sender, FormClosedEventArgs e)
		{
			try
			{
				//폼 닫기가 확정된 경우에만 해쉬에서 제거
				this.mv_oFunc.pf_AppBomRun(ComCls.cConst.PE_ARGTYPE_APP_STATUS.EXIT, this.Text, null, null);
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>Search 버튼 클릭시</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void btnSearch_Click(object sender, EventArgs e)
		{
			try
			{
				//---------------------------------------------------------------------------------------------------
				//Code Date GridView에 출력
				//---------------------------------------------------------------------------------------------------
				this.mf_ReadStandardCodeGridView();
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>▲ 버튼 클릭시</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void btnUp_Click(object sender, EventArgs e)
		{
			int nRowIndex = this.dgvCodeList.SelectedCells[0].OwningRow.Index;
			int nColIndex = this.dgvCodeList.SelectedCells[0].OwningColumn.Index;
			DataGridViewRow oGridViewRow = null;

			try
			{
				if (this.dgvCodeList.SelectedCells[0].OwningRow.Index == 0 || this.dgvCodeList.SelectedCells[0].OwningRow.Index == this.dgvCodeList.Rows.Count - 1)
					return;
				else
				{
					//현재 Row의 컬렉션을 저장
					oGridViewRow = this.dgvCodeList.Rows[nRowIndex];

					//그리드에서 제거
					this.dgvCodeList.Rows.Remove(oGridViewRow);
					//그리드에 삽입 (기존보다 한줄 위 Row로)
					this.dgvCodeList.Rows.Insert(nRowIndex - 1, oGridViewRow);

					//선택범위를 해제 후 기존에 선택된(위로 올라간)행을 선택되게함
					this.dgvCodeList.ClearSelection();
					this.dgvCodeList.Rows[nRowIndex - 1].Cells[nColIndex].Selected = true;
				}
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>▼ 버튼 클릭시</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void btnDown_Click(object sender, EventArgs e)
		{
			int nRowIndex = this.dgvCodeList.SelectedCells[0].OwningRow.Index;
			int nColIndex = this.dgvCodeList.SelectedCells[0].OwningColumn.Index;
			DataGridViewRow oGridViewRow = null;

			try
			{
				if (this.dgvCodeList.SelectedCells[0].OwningRow.Index == this.dgvCodeList.Rows.Count - 2 || this.dgvCodeList.SelectedCells[0].OwningRow.Index == this.dgvCodeList.Rows.Count - 1)
					return;
				else
				{
					//현재 Row의 컬렉션을 저장
					oGridViewRow = this.dgvCodeList.Rows[nRowIndex];

					//그리드에서 제거
					this.dgvCodeList.Rows.Remove(oGridViewRow);
					//그리드에 삽입 (기존보다 한줄 아래 Row로)
					this.dgvCodeList.Rows.Insert(nRowIndex + 1, oGridViewRow);
					//선택범위를 해제 후 기존에 선택된(아래로 내려간)행을 선택되게함
					this.dgvCodeList.ClearSelection();
					this.dgvCodeList.Rows[nRowIndex + 1].Cells[nColIndex].Selected = true;
				}
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>저장 버튼 클릭시</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void btnSave_Click(object sender, EventArgs e)
		{
			bool bResult = true;			//저장작업 결과
			bool bCheckNull = true;			//빈값 확인결과
			string sErrorMsg = null;		//에러시 출력문자

			try
			{
				//---------------------------------------------------------------------------------------------------
				//Standard Code에 Null 체크 -> Null일경우 시스템오류발생
				//---------------------------------------------------------------------------------------------------
				for (int nRow = 0; nRow < this.dgvCodeList.Rows.Count - 1; nRow++)
				{
					//Code Column값 체크
					if (this.dgvCodeList.Rows[nRow].Cells[3].Value == null)
					{
						ComCls.cException.MessageErrorBoxShow(this, ComCls.cConst.PC_ERROR_NO_STDCODE_CODE, ComCls.cConst.PC_ERROR_NO_STDCODE_CODE_TITLE);
						bCheckNull = false;
						break;
					}
					//Name Column값 체크
					if (this.dgvCodeList.Rows[nRow].Cells[4].Value == null)
					{
						ComCls.cException.MessageErrorBoxShow(this, ComCls.cConst.PC_ERROR_NO_STDCODE_NAME, ComCls.cConst.PC_ERROR_NO_STDCODE_NAME_TITLE);
						bCheckNull = false;
						break;
					}
					//Description Column값 체크
					if (this.dgvCodeList.Rows[nRow].Cells[6].Value == null)
					{
						ComCls.cException.MessageErrorBoxShow(this, ComCls.cConst.PC_ERROR_NO_STDCODE_DESC, ComCls.cConst.PC_ERROR_NO_STDCODE_DESC_TITLE);
						bCheckNull = false;
						break;
					}
				}
				//---------------------------------------------------------------------------------------------------
				//Null 체크 후 정상적으로 저장 가능 시
				//---------------------------------------------------------------------------------------------------
				if (bCheckNull == true)
				{
					//---------------------------------------------------------------------------------------------------
					//작성한 Code List를 LOOP문으로 저장
					//---------------------------------------------------------------------------------------------------
					for (int nRow = 0; nRow < this.dgvCodeList.Rows.Count - 1; nRow++)
					{
						//Row의 헤더로 비교
						switch (this.dgvCodeList.Rows[nRow].Cells[1].Value.ToString())
						{
							//저장 인 경우
							case "C":
								//저장 성공 -> 반환값 True 비교
								if (this.mf_CUDStandardCodeData("SP_STANDARDCODE_CUD", "CREATE_CODE", 0,
									-1, this.mv_nJobCode, this.dgvCodeList.Rows[nRow].Cells[3].Value.ToString(), this.dgvCodeList.Rows[nRow].Cells[3].Value.ToString(), this.dgvCodeList.Rows[nRow].Cells[3].Value.ToString(),
									this.dgvCodeList.Rows[nRow].Cells[6].Value.ToString(), nRow + 1, (Convert.ToBoolean(this.dgvCodeList.Rows[nRow].Cells[5].Value) == true) ? 1 : 0,
									0) == true)
								{
									//저장한 행의 Action 값 변경 (R - Read)
									this.dgvCodeList.Rows[nRow].Cells[1].Value = "R";
								}
								//저장 실패
								else
								{
									//에러메세지 생성 (Grid의 몇번째 행인지 표기
									sErrorMsg = string.Format("{0} 번째 행", nRow + 1);
									bResult = false;
									break;
								}

								break;

							//수정 인 경우
							case "U":
								//저장 성공 -> 반환값 True 비교
								if (this.mf_CUDStandardCodeData("SP_STANDARDCODE_CUD", "UPDATE_CODE", Convert.ToInt32(this.dgvCodeList.Rows[nRow].Cells[0].Value.ToString()),
									-1, this.mv_nJobCode, this.dgvCodeList.Rows[nRow].Cells[3].Value.ToString(), this.dgvCodeList.Rows[nRow].Cells[3].Value.ToString(), this.dgvCodeList.Rows[nRow].Cells[3].Value.ToString(),
									this.dgvCodeList.Rows[nRow].Cells[6].Value.ToString(), nRow + 1, (Convert.ToBoolean(this.dgvCodeList.Rows[nRow].Cells[5].Value) == true) ? 1 : 0,
									(Convert.ToBoolean(this.dgvCodeList.Rows[nRow].Cells[7].Value) == true) ? 0 : 1) == true)
								{
									//저장한 행의 Action 값 변경 (R - Read)
									this.dgvCodeList.Rows[nRow].Cells[1].Value = "R";
								}
								//저장 실패
								else
								{
									//에러메세지 생성 (Grid의 몇번째 행인지 표기
									sErrorMsg = string.Format("{0} 번째 행", nRow + 1);
									bResult = false;
									break;
								}
								break;
						}
					}
					////---------------------------------------------------------------------------------------------------
					//DB작업 모두 정상 처리
					////---------------------------------------------------------------------------------------------------
					if (bResult == true)
					{
						ComCls.cException.MessageBoxShow(this, ComCls.cConst.PC_MSG_APPBOM_UPDATE, ComCls.cConst.PC_MSG_APPBOM_UPDATE_TITLE);
						//---------------------------------------------------------------------------------------------------
						//Code Data GridView에 출력
						//---------------------------------------------------------------------------------------------------
						this.mf_ReadStandardCodeGridView();
					}
					////---------------------------------------------------------------------------------------------------
					//DB작업 오류 시 
					////---------------------------------------------------------------------------------------------------
					else
					{
						ComCls.cException.MessageErrorBoxShow(this, sErrorMsg + ComCls.cConst.PC_MSG_APPBOM_UPDATE_ERROR, ComCls.cConst.PC_MSG_APPBOM_UPDATE_TITLE);
					}
				}
			}
			catch (Exception ex)
			{
				bResult = false;
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>Grid View 내 값이 변경될 때</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void dgvCodeList_CellValueChanged(object sender, DataGridViewCellEventArgs e)
		{
			try
			{
				if (e.RowIndex != -1 && e.ColumnIndex != -1 && e.ColumnIndex != 1)
				{
					if (this.dgvCodeList.Rows[e.RowIndex].Cells[1].Value == null)
					{
						this.dgvCodeList.Rows[e.RowIndex].Cells[1].Value = "C";
					}
					else
					{
						if (this.dgvCodeList.Rows[e.RowIndex].Cells[1].Value.ToString() == "R")
						{
							this.dgvCodeList.Rows[e.RowIndex].Cells[1].Value = "U";
						}
					}

					//if (this.dgvCodeList.Rows[e.RowIndex].Cells[1].Value.ToString() == "C")
					//{
					//    this.dgvCodeList.Rows[e.RowIndex].HeaderCell.Value = "추가";
					//}
					//else if (this.dgvCodeList.Rows[e.RowIndex].Cells[1].Value.ToString() == "U")
					//{
					//    this.dgvCodeList.Rows[e.RowIndex].HeaderCell.Value = "수정";
					//}
				}
				//else if (e.RowIndex != -1 && e.ColumnIndex != -1 && e.ColumnIndex == 1)
				//{
				//    if (this.dgvCodeList.Rows[e.RowIndex].Cells[1].Value.ToString() == "R")
				//    {
				//        this.dgvCodeList.Rows[e.RowIndex].HeaderCell.Value = "";
				//    }
				//}
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		///-------------------------------------------------------------------------------------------------------------------------
		/// <summary>데이터그리드뷰 행 그리기 시작 시 발생</summary>
		///-------------------------------------------------------------------------------------------------------------------------
		private void dgvCodeList_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
		{
			try
			{
				this.mv_oFunc.pf_DataGridViewRowHeaderImage(this.dgvCodeList, e, 1);
			}
			catch (Exception ex)
			{
				ComCls.cException.ExceptionMessageBox(ex, this);
			}
		}
		#endregion

		//▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
	}// End class frmStandardCodeManagement
}// End namespace TimsXBX
